package com.softer.chengxin.project.service;

import com.softer.chengxin.common.domin.CommonResult;
import com.softer.chengxin.common.domin.ManagerPageResult;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.corp.domin.ApproveDTO;
import com.softer.chengxin.project.domin.ProjectInfo;

import java.util.List;

/**
 * @author wangxinrui
 * @date 2018/10/12
 */
public interface ProManagerService {

    /**
     * 加载企业项目信息
     *
     * @param loginName   登录名
     * @param qyName      企业名
     * @param state       状态
     * @param page        页码
     * @param district     所在区县
     * @param street     所在街道
     * @param cxBeginDate 查询开始日期
     * @param cxEndDate   查询结束日期
     * @return
     */
    ManagerPageResult load(String loginName, String qyName,String projectName, String state, Page page, String district,String street, String cxBeginDate, String cxEndDate);
    /**
     * 加载企业项目信息审批列表
     *
     * @param loginName   登录名
     * @param qyName      企业名
     * @param state       状态
     * @param page        页码
     * @param district     所在区县
     * @param street     所在街道
     * @param cxBeginDate 查询开始日期
     * @param cxEndDate   查询结束日期
     * @return
     */
    ManagerPageResult getProSPList(String loginName, String qyName,String projectName, String state, Page page, String district,String street, String cxBeginDate, String cxEndDate);

    /**
     * 加载该管理账号所管理区域的企业项目信息
     *
     * @param loginName 登录的用户名
     * @param qyName    企业名
     * @param state     状态
     * @param page      页码
     * @return 结果
     */
    ManagerPageResult findByCondition(String loginName, String qyName, Integer state, Page page, String proName);

    /**
     * 项目审批
     *
     * @param loginName  登录名
     * @param approveDTO 实体
     * @return 结果
     */
    CommonResult sp(String loginName, ApproveDTO approveDTO);

    /**
     * 获取该项目下的人员
     *
     * @param name  人员姓名
     * @param depId 部门id
     * @param page  页码
     * @param proId 项目id
     * @return 结果
     */
    ManagerPageResult findProjectPerson(String name, String depId, Page page, Integer proId);

    /**
     * 获取该管理账号下的企业下的项目的物业用房信息
     *
     * @param address 物业用房详细地址
     * @param nature  物业用房性质
     * @param proId   项目id
     * @param page    页码
     * @return 结果
     */
    ManagerPageResult findProjectWYYF(String address, Integer nature, Page page, Integer proId);

    /**
     * 获取该管理账号下企业下项目下业主委员会信息
     *
     * @param name       人员姓名
     * @param sex        性别
     * @param isDirector 是否主任
     * @param proId      项目id
     * @param page       页码
     * @return 结果
     */
    ManagerPageResult findProjectCommittee(String name, Integer sex, Integer isDirector, Integer proId, Page page);

    /**
     * 选中地图上的位置，并显示相应信息
     *
     * @param id 登陆账号ID
     * @return 信息集合
     */
    List<ProjectInfo> getProInfoHome(Integer id);
}
